همانطور كه ميدانيد سيستم عامل اندرويد از فارسي پشتيباني نميكند، البته از نسخه ۳ كه براي تبلتها ارائه شد، مشكل فارسي را در آن تا حدودي حل كردند، اما در نسخه 3.2 به كمال خود رسيد و علاوه بر اجزاي سيستم عامل، مرورگرها و همينطور كيبورد فارسي به سيستمعامل اضافه شد.
با اين حال كماكان در دستگاههاي موبايل نبود نمايش متون فارسي همچنان اذيتكننده بود، اما كاربران حرفهاي با Root كردن دستگاه موبايل خود و نصب كتابخانههاي فارسيشده اندرويد، مشكل فارسي را در آن حل كردهاند. try { TextView tv = (TextView)findViewById(R.id.text); AssetManager manager=this.getAssets(); manager.open("tahoma. ttf"); tv.setTypeface(Typeface. createFromAsset(manager, "tahoma.ttf")); tv.setGravity(Gravity.RIGHT); tv.setText(Farsi.Convert كتابخانه فارسي را ميتوانيد از آدرس زير دانلود كنيد: http://azure3bt.persiangig.com/farsi.java براي متون عربي هم ميتوانيد با استفاده از سورس كد نرمافزار قرآني Qiraat براحتي متون عربي را نمايش دهيد. براي دانلود سورس و استفاده از آن به لينك زير برويد: https://github.com/jazarine/Qiraat
از سوي ديگر بعضي كمپانيها با تغيير در سيستم عاملي كه روي دستگاههاي خود ارائه ميكند به كاربر امكان استفاده از زبان فارسي را ميدهد؛ براي مثال تمامي گوشيهاي تلفن همراه سامسونگ در ايران از زبان فارسي پشتيباني ميكند.Ice Cream Sandwich)ICS بستني حصيري) ارائه كند ادامه داشت.
پس از ارائه اين نسخه مشكل اندرويد با زبان فارسي و زبانهايي كه UTF-8 بودند حل شد. يكي از ويژگيهاي ديگر ICS اجراي همزمان روي تبلت و دستگاههاي موبايل بود. اين سيستم عامل امكان قابليت اجرا شدن روي هر دستگاهي را به شما ميدهد.
("..................."));} catch (IOException e) {e.printStackTrace();}
اما اين مشكل تا سال پيش كه اندرويد نسخه ۴ را كه با اسم رمز
اما استفاده از ICS هنوز براي تمامي كاربران اندرويد مقدور نيست، به روزرساني آن بايد توسط كمپاني ارائه شود كه اين موضوع در برخي مدلها و بعضي از كمپانيها هنوز لحاظ نشده است. البته شما ميتوانيد با نصب Custom ROMهاي اندرويد ICS روي دستگاههاي خود لذت استفاده از آن را امتحان كنيد.
برگرديم به مشكل قبلي؛ ميخواهيم متون فارسي را در اندرويد نسخههاي 3/3/2 به قبل نمايش دهيم. اين كه سيستم عامل متن فارسي را نشان نميدهد، كاملا ۱۰۰ درصد نيست و شما ميتوانيد با ترفندهايي كه در پايين مطلب ذكر شده است به دستگاه خود اين امكان را بدهيد تا از قابليت نمايش زبان فارسي برخوردار شود، اما اين نكته را هميشه در ذهن داشته باشيد كه سيستم عامل اندرويد با متنهاي Bi-Directional مثل متون عربي و فارسي و... مشكل دارد.
براي اين كه با مشكل موجود آشنا شويد به اين عكس دقت كنيد؛ همان طور كه ميبينيد متن فارسي جدا جدا نوشته شدهاست.
قبل از پرداختن به اين مشكل، درباره رندر كردن متن توسط اندرويد صحبت ميكنيم.
در زبانهايي مثل فارسي و عربي هر حرف اشكال مختلفي دارد؛ براي مثال ما چهار مدل «ي» داريم، مثل:
ي اول: زماني كه حرف «ي» اول كلمه ميآيد مثل يا، ياور و...
ي وسط: زماني كه حرف «ي» بين دو حرف ديگر ميآيد مثل كيك، كليك و...
ي آخر چسبان: حرف «ي» آخرين حرف است ولي قبل از آن به حرف ديگري چسبيده باشد مثل ولي، منطقي و...
ي آخر: حرف «ي» در آخر كلمه ميآيد و به هيچ حرف ديگري نچسبيده است مثل شهري،
ابري و...
بنابراين براي هر حرف مدلهاي مختلفي داريم؛ در حالي كه اندرويد زماني كه يك متن را ميخواهد نمايش دهد همان حالت اول را در نظر ميگيرد، اما چگونه اين مشكل را حل كنيم؟
شما ميتوانيد براي نمايش متون فارسي و عربي از «يونيكد» آنها استفاده كنيد. همانطور كه ميدانيد هر كاراكتر يك كد خاص دارد. به طور مثال هر چهار حالت حرف «ي» داراي يك كد منحصر به فرد است.
كاري كه شما ميتوانيد انجام دهيد اين است كه رشته متني ورودي خود را بگيريد و با تشخيص مكان حرف «ي» در يك كلمه، يونيكدي را كه براي نمايش آن حالت از حرف «ي» است جايگزين كنيد و سپس متن خود را نمايش دهيد و از فارسي در اندرويد لذت ببريد. به عكس دقت كنيد.
اما قبلتر از اين، يك كتابخانه كوچك براي اين تبديل نوشته شده است كه با استفاده از آن ميتوانيد متن عربي و فارسي را به آن بدهيد و متن درست شده را در خروجي نمايش دهيد.
مانند كد زير:
نظرات شما عزیزان: